{
gboolean ret = FALSE;
GOptionContext *context;
- const char *new_ref = NULL;
+ const char *new_provided_refspec = NULL;
gs_unref_object OstreeRepo *repo = NULL;
gs_free char *origin_refspec = NULL;
gs_free char *origin_remote = NULL;
gs_free char *origin_ref = NULL;
+ gs_free char *new_remote = NULL;
+ gs_free char *new_ref = NULL;
gs_free char *new_refspec = NULL;
gs_free char *new_revision = NULL;
gs_unref_object GFile *deployment_path = NULL;
goto out;
}
- new_ref = argv[1];
+ new_provided_refspec = argv[1];
+ if (!ostree_parse_refspec (new_provided_refspec, &new_remote, &new_ref, error))
+ goto out;
if (!ostree_sysroot_load (sysroot, cancellable, error))
goto out;
if (!ostree_parse_refspec (origin_refspec, &origin_remote, &origin_ref, error))
goto out;
-
- if (origin_remote)
- new_refspec = g_strconcat (origin_remote, ":", new_ref, NULL);
+
+ if (!new_remote)
+ new_refspec = g_strconcat (origin_remote, ":", new_provided_refspec, NULL);
else
- new_refspec = g_strdup (new_ref);
+ new_refspec = g_strdup (new_provided_refspec);
if (strcmp (origin_refspec, new_refspec) == 0)
{
echo "ok setup"
-echo "1..2"
+echo "1..3"
ostree --repo=sysroot/ostree/repo remote add --set=gpg-verify=false testos file://$(pwd)/testos-repo
ostree --repo=sysroot/ostree/repo pull testos testos/buildmaster/x86_64-runtime
assert_file_has_content sysroot/ostree/deploy/testos/current/usr/include/foo.h 'header'
echo "ok switch"
+
+ostree --repo=sysroot/ostree/repo remote add --set=gpg-verify=false anothertestos file://$(pwd)/testos-repo
+ostree admin --sysroot=sysroot switch --os=testos anothertestos:testos/buildmaster/x86_64-devel
+# Ok this is lame, need a better shell command to extract config, or switch to gjs
+ostree admin --sysroot=sysroot status > status.txt
+assert_file_has_content status.txt anothertestos
+
+echo "ok switch remotes"